from wxauto import WeChat
import os
from datetime import datetime

chat_title = "天马行空初二群"

# 初始化微信实例
wx = WeChat()

# 切换到聊天页面
wx.SwitchToChat()

# 获取当前会话列表并查找目标群聊
sessions = wx.GetSession()
target_found = False
print("当前会话列表：")
for session in sessions:
    print(f"- {session.name}")
    if session.name == chat_title:
        target_found = True
        session.click()  # 如果找到目标群聊，直接点击切换
        break

if not target_found:
    print(f"在会话列表中未找到群聊：{chat_title}")
    # 尝试搜索
    print("尝试搜索群聊...")
    search_results = wx.SessionBox.search(chat_title)
    if search_results:
        for result in search_results:
            if chat_title in result.get_all_text():
                result.click()
                target_found = True
                break

if not target_found:
    print(f"无法找到群聊：{chat_title}")
    exit()

# 确认已经切换到正确的聊天窗口
chat_info = wx.ChatInfo()
current_chat = chat_info.get('chat_name', '')
if current_chat != chat_title:
    print(f"切换聊天窗口失败，当前窗口是：{current_chat}，目标窗口是：{chat_title}")
    exit()

# 获取当前聊天窗口消息
msgs = wx.GetAllMessage()
print(f"当前聊天窗口消息数: {len(msgs)}")

# 创建logs文件夹（如果不存在）
if not os.path.exists('logs'):
    os.makedirs('logs')

# 创建日志文件名（使用聊天对象名称和当前时间）
log_file = os.path.join('logs', f'{chat_title}_chat_log_{datetime.now().strftime("%Y%m%d_%H%M%S")}.txt')

# 写入聊天记录
with open(log_file, 'w', encoding='utf-8') as f:
    # 写入聊天基本信息
    f.write(f"聊天对象: {wx.ChatInfo().get('chat_name', '未知')}\n")
    f.write(f"记录时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n")
    f.write(f"消息数量: {len(msgs)}\n")
    f.write("="*50 + "\n\n")
    
    # 只保存文字消息
    text_message_count = 0
    for msg in msgs:
        # if msg.type == 'text':  # 只处理文本消息
            text_message_count += 1
            # 格式：[时间] 发送者：消息内容
            msg_time = msg.info.get('time', datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
            f.write(f"[{msg_time}] {msg.sender}：{msg.content}\n")
    
    # 写入统计信息
    f.write(f"\n{'='*50}\n")
    f.write(f"纯文本消息总数: {text_message_count}")

print(f"聊天记录已保存到: {log_file}")
